import request from '@/utils/request'

// 登录相关API
const loginAPI = {
    // 用户登录
    login(loginData) {
        return request({
            url: '/api/Login/login',
            method: 'post',
            data: loginData
        }).catch(error => {
            console.error('登录失败:', error)
            throw error
        })
    },

    // 用户退出登录
    logout(username) {
        return request({
            url: '/api/Login/logout',
            method: 'get',
            params: { username }
        }).catch(error => {
            console.error('退出登录失败:', error)
            throw error
        })
    },

    // 用户注册
    register(userData) {
        return request({
            url: '/api/Login/save',
            method: 'post',
            data: userData
        }).catch(error => {
            console.error('注册失败:', error)
            throw error
        })
    },

    // 检查用户名是否存在
    checkUsername(username) {
        return request({
            url: '/api/Login/checkUsername',
            method: 'get',
            params: { username }
        }).catch(error => {
            console.error('检查用户名失败:', error)
            throw error
        })
    },

    // 获取用户信息
    getUserInfo(username) {
        return request({
            url: '/api/Login/userInfo',
            method: 'get',
            params: { username }
        }).catch(error => {
            console.error('获取用户信息失败:', error)
            throw error
        })
    },

    // 更新用户信息
    updateUser(userData) {
        return request({
            url: '/api/Login/update',
            method: 'post',
            data: userData
        }).catch(error => {
            console.error('更新用户信息失败:', error)
            throw error
        })
    },

    // 获取所有用户信息（管理员专用）
    getAllUsers() {
        return request({
            url: '/api/Login/getAllUsers',
            method: 'get'
        }).catch(error => {
            console.error('获取所有用户信息失败:', error)
            throw error
        })
    },

    // 用户注销（删除账号）
    deleteUser(userId) {
        return request({
            url: '/api/Login/remove',
            method: 'delete',
            params: { id: userId }
        }).catch(error => {
            console.error('注销用户失败:', error)
            throw error
        })
    },

    // 更新用户编辑权限
    updateEditPermission(userId, canEditProfile) {
        return request({
            url: '/api/Login/updateEditPermission',
            method: 'post',
            params: { userId, canEditProfile }
        }).catch(error => {
            console.error('更新用户权限失败:', error)
            throw error
        })
    },

    // 批量更新用户编辑权限
    batchUpdateEditPermission(userIds, canEditProfile) {
        return request({
            url: '/api/Login/batchUpdateEditPermission',
            method: 'post',
            data: { userIds, canEditProfile }
        }).catch(error => {
            console.error('批量更新用户权限失败:', error)
            throw error
        })
    }
}

export default loginAPI